Conventionally, in a multi-character networked game, actions by different characters need to be synchronized across different instances of the game. Behavior trees may be used to implement behavior and/or action of characters in a game. Complex characters may have deep and/or wide behavior trees including many nodes. Multiple instances of the game may need to share updated information, e.g. one or more currently active nodes per character, with each other and/or a server that hosts the game. Faithful replication of all characters in every instance of the game may require sharing a lot of information over the network. Alternatively, and/or simultaneously, allowing characters to be out of sync may cause poor interaction within the game, poor animation of actions, and/or other visually underwhelming effects.
Existing solutions may require hard coding on a case-by-case basis. Networking may be implemented in a very literal manner with large amounts of network traffic being dedicated to updating characters in different locations and sharing information about the current state of the characters including but not limited to animations that are being played on the characters, their current destination of travel, their current mode of transport, attack targets, interactions with other characters, etc. The network implementation of characters may require extrapolating to make educated guesses about where the master character is at a given moment and what animation is playing at what frame. As such, existing approaches may be very inflexible and unforgiving making for very choppy looking characters and/or interactions.